home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -serious- / programming / c / simplecalc / calc.h < prev    next >
C/C++ Source or Header  |  2000-02-28  |  8KB  |  214 lines

  1. /* -----------------------------------------------------------
  2.   $VER: calc.h 1.01 (22.02.2000)
  3.  
  4.   headers & defines for calculator project
  5.  
  6.   (C) Copyright 2000 Matthew J Fletcher - All Rights Reserved.
  7.   amimjf@connectfree.co.uk - www.amimjf.connectfree.co.uk
  8.   ------------------------------------------------------------ */
  9.  
  10. #define GetString( g ) ((( struct StringInfo * )g->SpecialInfo )->Buffer  )
  11. #define GetNumber( g ) ((( struct StringInfo * )g->SpecialInfo )->LongInt )
  12.  
  13. #define GD_Gadget00                            0
  14. #define GD_Gadget10                            1
  15. #define GD_Gadget20                            2
  16. #define GD_Gadget30                            3
  17. #define GD_Gadget40                            4
  18. #define GD_Gadget50                            5
  19. #define GD_Gadget60                            6
  20. #define GD_Gadget70                            7
  21. #define GD_Gadget80                            8
  22. #define GD_Gadget90                            9
  23. #define GD_Gadget100                           10
  24. #define GD_Gadget110                           11
  25. #define GD_Gadget120                           12
  26. #define GD_Gadget130                           13
  27. #define GD_Gadget140                           14
  28. #define GD_Gadget150                           15
  29. #define GD_Gadget160                           16
  30. #define GD_Gadget170                           17
  31. #define GD_Gadget180                           18
  32. #define GD_Gadget190                           19
  33. #define GD_Gadget200                           20
  34. #define GD_Gadget210                           21
  35. #define GD_Gadget220                           22
  36. #define GD_Gadget230                           23
  37. #define GD_Gadget240                           24
  38. #define GD_Gadget250                           25
  39. #define GD_Gadget260                           26
  40.  
  41. #define GDX_Gadget00                           0
  42. #define GDX_Gadget10                           1
  43. #define GDX_Gadget20                           2
  44. #define GDX_Gadget30                           3
  45. #define GDX_Gadget40                           4
  46. #define GDX_Gadget50                           5
  47. #define GDX_Gadget60                           6
  48. #define GDX_Gadget70                           7
  49. #define GDX_Gadget80                           8
  50. #define GDX_Gadget90                           9
  51. #define GDX_Gadget100                          10
  52. #define GDX_Gadget110                          11
  53. #define GDX_Gadget120                          12
  54. #define GDX_Gadget130                          13
  55. #define GDX_Gadget140                          14
  56. #define GDX_Gadget150                          15
  57. #define GDX_Gadget160                          16
  58. #define GDX_Gadget170                          17
  59. #define GDX_Gadget180                          18
  60. #define GDX_Gadget190                          19
  61. #define GDX_Gadget200                          20
  62. #define GDX_Gadget210                          21
  63. #define GDX_Gadget220                          22
  64. #define GDX_Gadget230                          23
  65. #define GDX_Gadget240                          24
  66. #define GDX_Gadget250                          25
  67. #define GDX_Gadget260                          26
  68.  
  69. #define Calc_CNT 27
  70.  
  71. /* for easy console i/o formating */
  72. #define ITALICS   "\033[3m"
  73. #define BOLD      "\033[1m"
  74. #define UNDERLINE "\033[4m"
  75. #define NORMAL    "\033[0m"
  76.  
  77. extern struct IntuitionBase *IntuitionBase;
  78. extern struct Library       *GadToolsBase;
  79.  
  80. extern struct Screen        *Scr;
  81. extern UBYTE                 *PubScreenName;
  82. extern APTR                  VisualInfo;
  83. extern struct Window        *CalcWnd;
  84. extern struct Window        *GraphWnd;
  85. extern struct Gadget        *CalcGList;
  86. extern struct Menu          *CalcMenus;
  87. extern struct IntuiMessage   CalcMsg;
  88. extern struct IntuiMessage   GraphMsg;
  89. extern struct Gadget        *CalcGadgets[27];
  90. extern UWORD                 CalcLeft;
  91. extern UWORD                 CalcTop;
  92. extern UWORD                 CalcWidth;
  93. extern UWORD                 CalcHeight;
  94. extern UWORD                 GraphLeft;
  95. extern UWORD                 GraphTop;
  96. extern UWORD                 GraphWidth;
  97. extern UWORD                 GraphHeight;
  98. extern UBYTE                *CalcWdt;
  99. extern UBYTE                *GraphWdt;
  100. extern struct TextAttr      *Font, Attr;
  101. extern UWORD                 FontX, FontY;
  102. extern UWORD                 OffX, OffY;
  103. extern struct TextFont      *CalcFont;
  104. extern struct TextFont      *GraphFont;
  105. extern struct GfxBase       *GfxBase;
  106. extern struct NewMenu        CalcNewMenu[];
  107. extern UWORD                 CalcGTypes[];
  108. extern struct NewGadget      CalcNGad[];
  109. extern ULONG                 CalcGTags[];
  110.  
  111. /* display buffer */
  112. extern char buffer[100]; /* 100 chars should be enough */
  113. extern char memory1[100];
  114. /* tape history */
  115. extern int UseTape;
  116. /* maths mode */
  117. extern int mode;
  118.  
  119. extern int Gadget00Clicked( void );
  120. extern int Gadget10Clicked( void );
  121. extern int Gadget20Clicked( void );
  122. extern int Gadget30Clicked( void );
  123. extern int Gadget40Clicked( void );
  124. extern int Gadget50Clicked( void );
  125. extern int Gadget60Clicked( void );
  126. extern int Gadget70Clicked( void );
  127. extern int Gadget80Clicked( void );
  128. extern int Gadget90Clicked( void );
  129. extern int Gadget100Clicked( void );
  130. extern int Gadget110Clicked( void );
  131. extern int Gadget120Clicked( void );
  132. extern int Gadget130Clicked( void );
  133. extern int Gadget140Clicked( void );
  134. extern int Gadget150Clicked( void );
  135. extern int Gadget160Clicked( void );
  136. extern int Gadget170Clicked( void );
  137. extern int Gadget180Clicked( void );
  138. extern int Gadget190Clicked( void );
  139. extern int Gadget200Clicked( void );
  140. extern int Gadget210Clicked( void );
  141. extern int Gadget220Clicked( void );
  142. extern int Gadget230Clicked( void );
  143. extern int CalcItem0( void );
  144. extern int CalcItem1( void );
  145. extern int CalcItem2( void );
  146. extern int CalcItem3( void );
  147. extern int CalcItem4( void );
  148. extern int CalcItem5( void );
  149. extern int CalcItem6( void );
  150. extern int CalcItem7( void );
  151.  
  152. extern int SetupScreen( void );
  153. extern void CloseDownScreen( void );
  154. extern void CalcRender( void );
  155. extern int HandleCalcIDCMP( void );
  156. extern int CalcCloseWindow( void );
  157. extern int OpenCalcWindow( void );
  158. extern void CloseCalcWindow( void );
  159. extern int HandleGraphIDCMP( void );
  160. extern int GraphCloseWindow( void );
  161. extern int OpenGraphWindow( void );
  162. extern void CloseGraphWindow( void );
  163. extern int CalcVanillaKey( void );
  164. extern int CalcRawKey( void );
  165.  
  166. extern void Shutdown( void );
  167. extern int ReadClip( char * );
  168. extern int WriteClip( char * );
  169. extern double do_math( char );
  170. extern int draw_display( char * , int );
  171. extern void clear_display ( void );
  172. extern void clear_buffers ( void );
  173. extern void draw_op( char );
  174. extern int atob( char *);
  175.  
  176. /* ----------------- */
  177. /* Clipboard Support */
  178. /* ----------------- */
  179.  
  180. struct cbbuf {
  181. ULONG size;     /* size of memory allocation            */
  182. ULONG count;    /* number of characters after stripping */
  183. UBYTE *mem;     /* pointer to memory containing data    */
  184. };
  185.  
  186. #define MAKE_ID(a,b,c,d) ((a<<24L) | (b<<16L) | (c<<8L) | d)
  187. #define ID_FORM MAKE_ID('F','O','R','M')
  188. #define ID_FTXT MAKE_ID('F','T','X','T')
  189. #define ID_CHRS MAKE_ID('C','H','R','S')
  190.  
  191. /* prototypes */
  192.  
  193. struct IOClipReq        *CBOpen         ( ULONG );
  194. void                    CBClose         (struct IOClipReq *);
  195. int                     CBWriteFTXT     (struct IOClipReq *, char *);
  196. int                     CBQueryFTXT     (struct IOClipReq *);
  197. struct cbbuf            *CBReadCHRS     (struct IOClipReq *);
  198. void                    CBReadDone      (struct IOClipReq *);
  199. void                    CBFreeBuf       (struct cbbuf *);
  200.  
  201. /* routines which are meant to be used internally  */
  202. int                     WriteLong       (struct IOClipReq *, long *);
  203. int                     ReadLong        (struct IOClipReq *, ULONG *);
  204. struct cbbuf            *FillCBData     (struct IOClipReq *, ULONG);
  205.  
  206. extern struct IOClipReq *CBOpen         ( ULONG );
  207. extern void             CBClose         (struct IOClipReq *);
  208. extern int              CBWriteFTXT     (struct IOClipReq *, char *);
  209. extern int              CBQueryFTXT     (struct IOClipReq *);
  210. extern struct cbbuf     *CBReadCHRS     (struct IOClipReq *);
  211. extern void             CBReadDone      (struct IOClipReq *);
  212. extern void             CBFreeBuf       (struct cbbuf *);
  213.  
  214.